﻿'''
题目描述
A、B两个人把苹果分为两堆，A希望按照他的计算规则等分苹果，他的计算规则是按照二进制加法计算，并且不计算进位
12+5=9（1100 + 0101 = 9），B的计算规则是十进制加法，包括正常进位，B希望在满足A的情况下获取苹果重量最多。
输入苹果的数量和每个苹果重量，输出满足A的情况下B获取的苹果总重量。
如果无法满足A的要求，输出-1。
数据范围
1 <= 总苹果数量 <= 20000
1 <= 每个苹果重量 <= 10000
输入描述
输入第一行是苹果数量：3
输入第二行是每个苹果重量：3 5 6
输出描述
输出第一行是B获取的苹果总重量：11
示例1
输入
3
3 5 6
输出
11
说明
示例2
输入
8
7258 6579 2602 6716 3050 3564 5396 1773
输出
35165
说明
解题思路
这道题目要求你在给定的条件下计算A和B两个人分苹果的结果。A的要求是按照二进制加法（不进位）等分苹果，而B希望在满足A的要求
下获取苹果总重量的最大值。如果无法满足A的要求，则输出-1。
题目分析
二进制加法不进位：
二进制加法不进位的意思是直接对每一位进行相加，但不进行进位处理。
比如：12（1100）和5（0101）相加的结果是9（1001），因为在二进制表示中：
1+0 = 1
1+1 = 0（不进位）
0+0 = 0
0+1 = 1
题目要求：
你需要找到一个办法，把苹果分成两堆，使得两堆苹果的总重量按二进制加法（不进位）结果相等。
在满足这个条件的前提下，让B获取的苹果总重量最大。
示例分析
示例 1
输入：
3
3 5 6
分析：
可能的分法有：
3, 5 | 6
3, 6 | 5
5, 6 | 3
根据二进制加法规则（不进位），3 + 5 = 6，3 + 6 = 5，5 + 6 = 3。
通过手动验证，发现其中一堆可以是{5, 6}，另一堆是{3}，此时B获取的总重量最大为11。
示例 2：
8
7258 6579 2602 6716 3050 3564 5396 1773
计算总异或和：
首先计算所有苹果重量的异或和。如果总异或和不为 0，那么就不可能按照 A 的规则将苹果分成两堆，此时输出 -1。
XOR sum=7258⊕6579⊕2602⊕6716⊕3050⊕3564⊕5396⊕1773
通过逐个异或，可以计算出：
总异或和为 0，所以有可能按照 A 的规则分堆。
找出 B 的最大重量：
因为 XOR 总和为 0，我们可以找到一种分法，使得两个堆的异或结果为 0。我们将总重量计算出来：
Total Sum = 7258 + 6579 + 2602 + 6716 + 3050 + 3564 + 5396 + 1773 = 36838 
然后我们考虑两堆的分配，使得其中一个堆的重量最大。因为总异或和为 0，我们可以选择总重量中最小的那个数，从总和中减去，
这样可以最大化 B 的重量：
因此，B 可以获得的最大重量是：

Max Weight for B = Total Sum − Minimum Weight = 36838 − 1773 = 35165
输出结果：
最终，输出 B 可以获取的最大苹果重量：
35165
结论
如果总异或和为 0，找到最小的重量，将其分给 A，B 的最大重量是总和减去这个最小重量。
如果总异或和不为 0，则输出 -1。
'''
#读取输入
n = int(input())
weights = list(map(int,input().split()))
result = 0
for weight in weights:
    result ^= weight
if result != 0:
    print(-1)
    exit()
else:
    weights.sort()
#输出结果
print(sum(weights) - weights[0])
